Skip to content

[codex] Document Conductor command wrapper#739

Merged
justin808 merged 1 commit into
masterfrom
jg-codex/agent-conductor-guidance
May 22, 2026
Merged

[codex] Document Conductor command wrapper#739
justin808 merged 1 commit into
masterfrom
jg-codex/agent-conductor-guidance

Conversation

@justin808
Copy link
Copy Markdown
Member

@justin808 justin808 commented May 22, 2026

Summary

  • Adds the project build/test command reference to AGENTS.md.
  • Documents why Conductor needs bin/conductor-exec for version-managed Ruby, Bundler, Node, pnpm, and git hook-sensitive commands.
  • Preserves the existing repo overview and address-review guidance already on master.

Validation

  • git diff --check

Notes

I intentionally left the incidental JS formatting-only edits and the stale staged homepage/control-plane diffs out of this PR.


Note

Low Risk
Documentation-only updates to AGENTS.md; no runtime code paths are modified. Risk is limited to potential developer confusion if instructions are incorrect.

Overview
Adds a build/test command quick reference to AGENTS.md (dev server, RSpec, RuboCop, and auto-fix).

Documents Conductor non-interactive shell pitfalls and standardizes guidance to run Ruby/Bundler/Node/pnpm and git-hook-sensitive commands via bin/conductor-exec, including example before/after command invocations and a note about mise exec fallback behavior.

Reviewed by Cursor Bugbot for commit 14a31b4. Bugbot is set up for automated code reviews on this repo. Configure here.

Summary by CodeRabbit

Documentation

  • Added comprehensive build and test command documentation for common development tasks
  • Expanded developer guidance for running project-specific commands to maintain environment consistency
  • Introduced compatibility information for development workflows

Review Change Stack

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 22, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: beaf2490-745c-437e-bf1b-772c6572ec3d

📥 Commits

Reviewing files that changed from the base of the PR and between 09c3d71 and 14a31b4.

📒 Files selected for processing (1)
  • AGENTS.md

Walkthrough

Documentation update to AGENTS.md introducing build/test command references, extending working rules with conductor-exec guidance, and adding conductor compatibility details explaining non-interactive shell behavior and tool version usage.

Changes

Conductor Execution and Compatibility Guidance

Layer / File(s) Summary
Build, Test, and Conductor Compatibility Documentation
AGENTS.md
Added "Build and Test Commands" section with dev server, RSpec, RuboCop, and auto-fix commands. Extended "Working Rules" directing Ruby/Bundler/Node/pnpm/git-hook-sensitive commands through bin/conductor-exec. Added "Conductor Compatibility" section explaining Conductor's non-interactive shell environment, symptoms of incorrect tool versions, and bin/conductor-exec usage examples with mise fallback behavior.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

Poem

A rabbit hops through docs with glee, 🐰
Conductor paths for agents to see,
Run these commands, no system tools near,
Let bin/conductor-exec be crystal clear! ✨

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch jg-codex/agent-conductor-guidance

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown

Review app commands

  • +review-app-deploy - create or redeploy this PR's review app.
  • +review-app-delete - delete this PR's review app and temporary resources.
  • +review-app-help - show setup details and workflow behavior.

For setup details, comment +review-app-help.

@claude
Copy link
Copy Markdown

claude Bot commented May 22, 2026

Code Review — PR #739: Document Conductor command wrapper

Overall: This is a clean, low-risk documentation PR. The content is accurate (verified against bin/conductor-exec) and fills a real gap for non-Claude agents (Codex, GPT) working in the repo. A few issues worth addressing before merging:


Issues

1. Build command section is inconsistent with the wrapper guidance

The ## Build and Test Commands section shows bare commands (bundle exec rspec, etc.), but the Conductor Compatibility section added later says those exact commands should be run through bin/conductor-exec. An agent reading top-to-bottom could run the unwrapped versions before reaching the warning. Either:

  • Add a note directly in the build commands block pointing to bin/conductor-exec, or
  • Show the wrapped forms in that section (matching how CLAUDE.md handles this via the Solution block)

2. Missing version-number examples in symptoms list

CLAUDE.md includes concrete version numbers in the symptom list (e.g., "returns system Ruby (e.g., 2.6.10) instead of project Ruby (e.g., 3.4.3)"). This detail is helpful — it lets an agent recognise the problem immediately from tool output. Consider adding similar specificity to AGENTS.md.

3. Missing reference link

CLAUDE.md links to react_on_rails-demos#105 as background reading. Omitting it from AGENTS.md is fine if intentional, but the link provides useful context for anyone investigating the issue further.

4. Missing inline comment on git commit example

The bin/conductor-exec source file itself includes # Pre-commit hooks work correctly on the git commit example line. CLAUDE.md repeats it. AGENTS.md drops it. It explains why you'd wrap git commit, which isn't obvious — worth keeping.


Minor Nit

The added Working Rules bullet ("Run Ruby, Bundler, Node, pnpm, and git hook-sensitive commands through bin/conductor-exec...") references "non-interactive shells", but the full explanation of what that means doesn't appear until the Conductor Compatibility section below it. This ordering is fine but the bullet would be clearer if it said "in Conductor" instead of "in non-interactive shells", since that's the specific context.


Positives

  • The fallback wording ("falls back to direct execution for non-mise users") is actually more accurate than CLAUDE.md's equivalent, which implies asdf/rbenv/nvm are natively supported — they aren't; the script just does exec "$@" and those managers only work if their shims are in PATH at the system level.
  • Prose is concise and readable.
  • No runtime code is touched; risk is purely documentation drift.

Comment thread AGENTS.md

- `prompts/`: shared prompt templates for Codex, GPT, and other non-Claude tools

## Build and Test Commands
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The commands shown here (e.g. bundle exec rspec) are the bare forms, but the Conductor Compatibility section added below recommends wrapping them all with bin/conductor-exec. An agent reading sequentially could run these bare commands before reaching that guidance.

Consider adding a brief callout here, e.g.:

Suggested change
## Build and Test Commands
## Build and Test Commands
> **Conductor users:** prefix every command below with `bin/conductor-exec` — see [Conductor Compatibility](#conductor-compatibility).

Or alternatively, show the wrapped forms here and drop the duplication in the Conductor section.

Comment thread AGENTS.md
## Working Rules

- When the user asks to address PR review comments, follow `prompts/address-review.md`.
- Run Ruby, Bundler, Node, pnpm, and git hook-sensitive commands through `bin/conductor-exec` so non-interactive shells use the project tool versions.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"non-interactive shells" is generic — the section below clarifies this is specifically a Conductor issue. Tying the rule to Conductor here makes the bullet self-contained and matches the section heading just below.

Suggested change
- Run Ruby, Bundler, Node, pnpm, and git hook-sensitive commands through `bin/conductor-exec` so non-interactive shells use the project tool versions.
- Run Ruby, Bundler, Node, pnpm, and git hook-sensitive commands through `bin/conductor-exec` when running inside Conductor, so version-managed tools are used instead of system defaults.

Comment thread AGENTS.md
bin/conductor-exec ruby --version
bin/conductor-exec bundle exec rubocop
bin/conductor-exec pnpm install
bin/conductor-exec git commit -m "message"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Worth adding the same inline comment that bin/conductor-exec itself uses — it explains the non-obvious reason you'd wrap a plain git commit:

Suggested change
bin/conductor-exec git commit -m "message"
bin/conductor-exec git commit -m "message" # Pre-commit hooks use the correct tool versions

@justin808 justin808 marked this pull request as ready for review May 22, 2026 01:09
@justin808 justin808 merged commit 2af925b into master May 22, 2026
14 checks passed
@justin808 justin808 deleted the jg-codex/agent-conductor-guidance branch May 22, 2026 01:10
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 22, 2026

✅ Review app for PR #739 is deleted

Open organization console
View workflow logs

@claude
Copy link
Copy Markdown

claude Bot commented May 22, 2026

Code Review

PR: [codex] Document Conductor command wrapper
Type: Documentation only (AGENTS.md)
Risk: Low — no runtime code paths changed


Overview

This PR adds two sections to AGENTS.md: a build/test command reference and a Conductor compatibility guide explaining why bin/conductor-exec is needed in non-interactive shells. The content is accurate and follows the pattern already established in CLAUDE.md.


Issues

1. Inconsistency between the two new sections (medium)

The Build and Test Commands section documents commands without the bin/conductor-exec prefix:

bundle exec rspec
bundle exec rubocop

But the Working Rules bullet immediately below instructs agents to run Ruby/Bundler commands through bin/conductor-exec. An AI agent (or developer) scanning only the commands section will run them bare, which is exactly the failure mode the Conductor section warns against. The commands section should either use the wrapper or add a note pointing to the Conductor section.

2. Misleading fallback description (low)

The wrapper uses mise exec when mise is available and falls back to direct execution for non-mise users.

For users of asdf, rbenv, nvm, or nodenv, the fallback is exec "$@" — plain direct execution — which also runs without the correct PATH in a non-interactive shell. The description implies the fallback works for those users, but it silently uses the system version instead. CLAUDE.md handles this more carefully by listing those tools explicitly. Consider aligning the wording.

3. bundle exec rspec missing from wrapper examples (low)

The Conductor examples show bundle exec rubocop but not bundle exec rspec. Since tests are a primary CI command and appear in the commands section, they should be in the wrapper examples for completeness.

4. ruby --version as a "Use" example (nit)

bin/conductor-exec ruby --version is a diagnostic command, not a typical workflow step. It reads oddly alongside bundle exec rubocop and git commit. It is useful in the Symptoms section of CLAUDE.md but does not need to anchor the before/after example block here.


Positives

  • Clear problem/symptom/solution structure mirrors CLAUDE.md and will be easy for agents to parse.
  • Before/after code block is a practical pattern that reduces ambiguity.
  • Keeping this change isolated to docs (no JS formatting noise) was the right call per the PR notes.

Comment thread AGENTS.md

# Auto-fix linting issues
bundle exec rubocop -a
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The commands here are shown without bin/conductor-exec, but the Working Rules section (line 28) says to run Ruby/Bundler/Node commands through that wrapper. An agent scanning only this block will run them bare — exactly the failure mode documented in the Conductor Compatibility section below.

Consider adding a note, e.g.:

In Conductor / non-interactive shells, prefix these with bin/conductor-exec (see Conductor Compatibility).

Or restructure so the wrapper examples in the Conductor section cover rspec and rubocop too.

Comment thread AGENTS.md
bin/conductor-exec git commit -m "message"
```

The wrapper uses `mise exec` when mise is available and falls back to direct execution
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The fallback is exec "$@" — plain direct execution — which also won't resolve correct tool versions for asdf/rbenv/nvm/nodenv users in a non-interactive shell. The current wording ("falls back to direct execution for non-mise users") implies it works for them, but they'll silently get system versions too.

Suggested change
The wrapper uses `mise exec` when mise is available and falls back to direct execution
The wrapper uses `mise exec` when mise is available. For non-mise users (asdf, rbenv,
nvm, nodenv), the fallback runs the command directly; those users may still need to
ensure their version manager is initialised in the shell environment.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 14a31b4298

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread AGENTS.md
bin/dev

# Run tests
bundle exec rspec
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Prefix Bundler examples with conductor wrapper

The new build/test quick-reference shows running bundle exec commands directly, but this same document now says Bundler commands in non-interactive Conductor shells must go through bin/conductor-exec to avoid wrong tool versions. That inconsistency makes users likely to copy commands that fail with the version-mismatch symptoms described below (e.g., incompatible Ruby), so the examples should be wrapped or explicitly labeled as interactive-shell-only.

Useful? React with 👍 / 👎.

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented May 22, 2026

Greptile Summary

This PR updates AGENTS.md with a build/test command quick reference and detailed guidance on using bin/conductor-exec when working inside Conductor's non-interactive shell environment.

  • Adds a Build and Test Commands section with bin/dev, RSpec, and RuboCop invocations.
  • Adds a Conductor Compatibility section explaining why bin/conductor-exec is needed (non-interactive shell skips .zshrc/mise PATH setup) with before/after examples and a mise exec fallback note.
  • Adds a Working Rules bullet requiring all Ruby/Bundler/Node/pnpm/git-hook commands to go through bin/conductor-exec.

Confidence Score: 4/5

Safe to merge — documentation-only change with no runtime impact.

The quick-reference commands in the new Build and Test Commands section show bare bundle exec invocations, while the Working Rules bullet added in the same commit explicitly says those commands must go through bin/conductor-exec. A developer following only the quick reference will reproduce the exact environment mismatch the document is trying to prevent.

AGENTS.md — the quick-reference block and the Working Rules bullet are inconsistent with each other.

Important Files Changed

Filename Overview
AGENTS.md Documentation-only change: adds a Build/Test command quick reference and a Conductor compatibility guide. The quick-reference commands omit the bin/conductor-exec wrapper that the Working Rules and Conductor Compatibility sections explicitly require for those same commands.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Developer runs command] --> B{Using bin/conductor-exec?}
    B -- Yes --> C{mise available?}
    C -- Yes --> D[mise exec -- command\nCorrect tool versions from .tool-versions]
    C -- No --> E[Direct execution\nfallback for asdf/rbenv/nvm users]
    B -- No --> F{Interactive shell?}
    F -- Yes --> G[.zshrc sourced\nmise PATH active\nCommand works correctly]
    F -- No --> H[Conductor non-interactive shell\n.zshrc NOT sourced\nmise PATH NOT active]
    H --> I[System Ruby/Node used\nVersion mismatch\nPre-commit hooks may fail]
Loading

Reviews (1): Last reviewed commit: "Document conductor command wrapper" | Re-trigger Greptile

Comment thread AGENTS.md
Comment on lines +11 to +23
```bash
# Run development server
bin/dev

# Run tests
bundle exec rspec

# Run linting
bundle exec rubocop

# Auto-fix linting issues
bundle exec rubocop -a
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 The quick-reference commands contradict the Working Rule directly below them. bundle exec rspec, bundle exec rubocop, and bundle exec rubocop -a are exactly the kinds of Bundler commands that the Working Rules say must be prefixed with bin/conductor-exec. A developer reading only this section will copy-paste the unwrapped versions and hit the Conductor shell-environment problem the rest of the doc is trying to prevent.

Suggested change
```bash
# Run development server
bin/dev
# Run tests
bundle exec rspec
# Run linting
bundle exec rubocop
# Auto-fix linting issues
bundle exec rubocop -a
```
```bash
# Run development server
bin/dev
# Run tests
bin/conductor-exec bundle exec rspec
# Run linting
bin/conductor-exec bundle exec rubocop
# Auto-fix linting issues
bin/conductor-exec bundle exec rubocop -a

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant